package modele;

/**
 * 
 * @author Florence Delrieu & Coralie Micouin
 * 
 */
public class Noeud {

	// L'id d'un nouveau noeud ne doit pas etre confondu avec un precedent. Il
	// est donc gere de maniere statique dans la classe Noeud, et est incremente
	// par le constructeur lui meme.
	private static int ID_NOEUD_SUIVANT = 1;

	private int idNoeud;
	private String xPath;
	private int longueur;
	private int idDocument;

	/**
	 * constructeur [pendant le parsage xml]
	 * 
	 * @param idDocument
	 * @param xPath
	 */
	public Noeud(int idDocument, String xPath) {
		this.idNoeud = Noeud.ID_NOEUD_SUIVANT++;
		this.idDocument = idDocument;
		this.xPath = xPath;
	}

	/**
	 * constructeur [pour recuperer les infos de la base]
	 * 
	 * @param idDocument
	 * @param xPath
	 * @param idNoeud
	 * @param longueur
	 */
	public Noeud(int idDocument, String xPath, int idNoeud, int longueur) {
		this.idNoeud = idNoeud;
		this.idDocument = idDocument;
		this.xPath = xPath;
		this.longueur = longueur;
	}

	public int getIdNoeud() {
		return idNoeud;
	}

	public void setIdNoeud(int idNoeud) {
		this.idNoeud = idNoeud;
	}

	public String getxPath() {
		return xPath;
	}

	public void setxPath(String xPath) {
		this.xPath = xPath;
	}

	public int getLongueur() {
		return longueur;
	}

	public void setLongueur(int longueur) {
		this.longueur = longueur;
	}

	public int getIdDocument() {
		return idDocument;
	}

	public void setIdDocument(int idDocument) {
		this.idDocument = idDocument;
	}

	@Override
	public boolean equals(Object o) {
		if (o == null || o.getClass() != Noeud.class) {
			return false;
		}
		return this.idNoeud == ((Noeud) o).getIdNoeud();
	}
}
